In today's world of vast computing technology, technology users may encounter design constraints that effectively force the users to choose between one set of benefits and another. In an effort to maximize the performance of their computing devices, some users may implement computing techniques designed to achieve high-speed access to certain file data. For example, a user may implement a tiered file system that includes a primary storage tier configured to store “hot” data (e.g., frequently accessed file data) and a secondary storage tier configured to store “cold” data (e.g., infrequently accessed file data). In this example, the tiered file system may enable the user's computing device to access the “hot” data stored in the primary storage tier faster than the “cold” data stored in the secondary storage tier. As such, by storing the “hot” data in the primary storage tier, the tiered file system may ensure that the user's computing device has high-speed access to the “hot” data.
Likewise, in an effort to reduce the data storage costs associated with their computing devices, some users may implement techniques designed to decrease the amount of storage space needed to store certain file data. For example, a user may implement a data-deduplication technique that enables a file system associated with the user's computing device to store unique instances of file data. In this example, the data-deduplication technique may involve identifying and eliminating redundant copies of the file data stored in the file system. By identifying and eliminating redundant copies of the file data, the data-deduplication technique may enable the file system to decrease the amount of storage space needed to store the file data.
Unfortunately, users may be unable to successfully implement conventional data-deduplication techniques in tiered file systems without compromising at least some of the performance benefits provided by the file system's tiered structure. For example, a conventional data-deduplication technique may consume computing resources needed to maximize the speed at which the “hot” data is accessed in the primary storage tier. As a result, the conventional data-deduplication technique may cause a 10-15% degradation in the primary storage tier's performance.
What is needed, therefore, is a mechanism that achieves the storage-saving benefits of data deduplication without compromising the performance benefits of tiered file systems.